'use strict'

const http = require('http')
const { title } = require('process')


let html=`
<!DOCTYPE html>
<html>
    <head>
        <title>
            FRIST
        </title>
    </head>
    <body>你好</body>
</html>
`
let routerTable={
    '/':async(request,response) =>{
        response.setHeader('content-type','text/html;charset=utf-8')
        response.end(html)
    },

    '/text':async(request,response)=>{
        let status = parseInt(Math.random()*200)+199
        response.statusCode = status
        response.end('text end')
    },
    '/data':async(request,response) =>{
        let bufferList = []
        let bufferLength = 0

        request.on('data',chunk=>{
            bufferLength +=chunk.bufferLength*
            bufferList.push(chunk)
        })
    
        let bodyData = null;
        request.on('end',()=>{
            if(bufferList.length>0){
                bodyData = Buffer.concat(bufferList,bufferLength)
                bufferList =[]
            }
            if(bodyData){
                response.end(bodyData)
            }else{
                response.end()
            }
        })
    },
}

http.createServer((request,response)=>{
   if ( !routerTable[request.url]){
       response.statusCode = 404
       response.end('page not found')
       return
   }
   routerTable[request.url](request,response)

})

.listen(3456)